% %IIR低通滤波器
% %通带截止频率
% wp=0.2*pi;
% %阻带截止频率
% ws=0.3*pi;
% %通带衰减
% Rp=1;
% %阻带衰减
% Rs=15;
% %采样频率
% Fs=1000;
% Ts=1/Fs;
% wp1 = 2*tan(wp/2)*Fs;
% ws1 = 2*tan(ws/2)*Fs;
% %选择滤波器最小阶数
% [N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');
% %创建butterworth模拟滤波器
% [Z,P,K]=buttap(N);
% %转为传递函数模型
% [Bap,Aap]=zp2tf(Z,P,K);
% %低通
% [b,a]=lp2lp(Bap,Aap,Wn);
% %双线性法转为数字滤波器
% [bz,az]=bilinear(b,a,Fs);
% %绘制频率响应曲线
% [H,W]=freqz(bz,az);
% figure;
% plot(W/pi,20*log10(abs(H)));
% grid;
% xlabel('频率/pi');
% ylabel('dB');
% title("IIR低通滤波器频率响应");




% %IIR高通滤波器
% %通带截止频率
% wp=0.8*pi;
% %阻带截止频率
% ws=0.5*pi;
% %通带衰减
% Rp=3;
% %阻带衰减
% Rs=18;
% %采样频率
% Fs=1000;
% Ts=1/Fs;
% wp1 = 2*tan(wp/2)*Fs;
% ws1 = 2*tan(ws/2)*Fs;
% %选择滤波器最小阶数
% [N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');
% %创建butterworth模拟滤波器
% [Z,P,K]=buttap(N);
% %转为传递函数模型
% [Bap,Aap]=zp2tf(Z,P,K);
% %低通变高通
% [b,a]=lp2hp(Bap,Aap,Wn);
% %双线性法转为数字滤波器
% [bz,az]=bilinear(b,a,Fs);
% %绘制频率响应曲线
% [H,W]=freqz(bz,az);
% figure;
% plot(W/pi,20*log10(abs(H)));
% grid;
% xlabel('频率/pi');
% ylabel('dB');
% title("IIR高通滤波器频率响应");



% % IIR带阻滤波器
% %通带下限截止频率
% wp1=0.18*pi;
% %通带上限截止频率
% wp2=0.22*pi;
% %阻带上限截止频率
% ws1=0.192*pi;
% %阻带下限截止频率
% ws2=0.208*pi;
% %通带衰减
% Rp=1;
% %阻带衰减
% Rs=15;
% %采样频率
% Fs=500;
% Ts=1/Fs;
% wp1 = 2*tan(wp1/2)*Fs;
% wp2 = 2*tan(wp2/2)*Fs;
% ws1 = 2*tan(ws1/2)*Fs;
% ws2 = 2*tan(ws2/2)*Fs;
% % 中心频率和带宽
% w0 = sqrt(wp1*wp2);
% Band = abs(wp1-wp2);
% % 归一化频率
% wp = 1;
% ws = wp*(ws1*Band)/(w0^2-ws1^2);
% %选择滤波器最小阶数
% [N,Wn]=buttord(wp,ws,Rp,Rs,'s');
% %创建butterworth模拟滤波器
% [Z,P,K]=buttap(N);
% %转为传递函数模型
% [Bap,Aap]=zp2tf(Z,P,K);
% %低通变带阻
% [b,a]=lp2bs(Bap,Aap,w0,Band);
% %双线性法转为数字滤波器
% [bz,az]=bilinear(b,a,Fs);
% [H,W]=freqz(bz,az);
% %绘制频率响应曲线
% figure(3);
% plot(W/pi,20*log10(abs(H)));
% grid;
% xlabel('频率/pi');
% ylabel('dB');
% title('IIR带阻滤波器频率响应');


% %IIR带通滤波器
% Fs=500; 
% %采样频率
% T=1/Fs;
% %通带下边带截止频率
% wp1=0.5*pi; 
% wp2=0.8*pi; 
% wp=[wp1,wp2];
% %通带上边带截止频率
% ws1 = 0.3*pi;
% ws2=0.96*pi;
% ws=[ws1 ws2];
% %通带衰减小于3dB，阻带衰减大于18dB
% Rp=1;Rs=15;
% wp=2*Fs*tan(wp/2);
% ws=2*Fs*tan(ws/2);
% [N,wn]=buttord(wp,ws,Rp,Rs,'s'); %计算阶数N和3dB截止频率Wn
% [b,a]=butter(N,wn,'s'); %阶数选择为3，
% [bz,az]=bilinear(b,a,Fs); %双线性变换函数
% %绘制频率响应曲线
% [H,W]=freqz(bz,az);
% plot(W/pi,20*log10(abs(H)));
% xlabel('频率/pi');
% ylabel('幅度');
% grid;
% title('IIR带通滤波器频率响应');